Very funny and true to life
A manager asked a programmer how long it would take him
to finish the program he was currently working on.
"I'll finish tomorrow!" the programmer replied promptly.
"I think you are being unrealistic," the manager said. "Cross your heart, how long will it really take?"
The programmer, having thought for a moment, said:
"I have a few more things in store that I'd like to add. It will take no less than two weeks..."
"
Even if we have to wait," the manager kept insisting, "I will be
satisfied if you just tell me when the program is going to be ready."
The programmer agreed to this proposal.
A few years later, the manager resigned. On the way to his farewell lunch, he saw the programmer sleeping at his terminal.
He had been programming all night.
***
A manager
was on the verge of being fired, but a programmer who worked for him
developed a new program that became popular and sold
well. As a result, the manager kept his job.
The manager tried to give the programmer a bonus, but the programmer refused, saying:
"I wrote the program because I thought it would be an interesting concept, and therefore I need no reward."
The manager, upon hearing this, noted:
"This
programmer, although occupying a lowly position, well understands
his employer's duties. Let us promote him to the higher level
of management consultant!"
But when he said this, the programmer refused once again, saying:
"
I exist because I program. If you promote me, I will do
nothing, but only waste someone's time. May I go? I
have a program I am working on right now."
***
A manager came to his programmers and told them:
"Considering the hours you have worked, you may now arrive at nine in the morning and leave at five in the evening."
The programmers grew angry and some immediately wanted to quit.
So the manager said:
"Alright, in that case you can set your own working hours, as long as you finish your projects on schedule."
The programmers were satisfied and began arriving at noon and working until the early morning.
***
A manager
came to a master programmer and showed him a document describing
the requirements for a new application. The manager asked the master:
"How long will it take to build this system if I assign this project to five programmers?"
"It will take a year," the master said promptly.
"
But we need this system immediately, as soon as possible! How long will it
take if I assign this project to ten programmers?"
The master programmer frowned:
"In that case, it will take two years."
"And what if I assign this project to a hundred programmers?"
The master programmer shrugged.
"Then the project will never be completed," he said.
***
A master programmer was inspecting a novice one day. The master saw that the novice was engrossed in a handheld computer game.
"Excuse me," he said. "May I have a look?"
The novice concentrated and handed the device to the master.
"
I see that this device offers three levels of play: Easy,
Medium, and Hard," the master said. "Yet each of these devices also
has an additional level of play, where the device cannot defeat
the human, but neither does it let the human defeat it."
"I beg of you, great master!" the novice pleaded. "How does one find these mysterious settings?"
The master threw the device onto the floor and stomped it to pieces with his feet.
Suddenly, the novice achieved enlightenment.
***
A master was explaining the nature of the Tao to one of his novices.
"The Tao is embodied in all software — despite its apparent insignificance!" the master said.
"Is there Tao in a pocket calculator?" the novice asked.
"There is!" came the reply.
"Is there Tao in a video game?" the novice continued.
"It is even in a video game," the master said.
"And is there Tao in the DOS system for personal computers?"
The master coughed and gently shifted his position.
"The lesson is over for today," he said.
***
A novice asked the Master:
"
I have seen a programmer who never formats, never tests, and never
documents his programs. Yet everyone who knows him considers him one of
the best programmers in the world. Why is that?"
The Master replied:
"This
programmer has mastered the Tao. He no longer needs formatting; he does not
get angry when the system crashes, but accepts the universe without
irritation. He has long had no need for documentation; he no longer
worries that someone else will see his code. He no longer
needs testing; each of his programs is perfect in and of
itself, clear and elegant, its purpose obvious. Truly has he entered
the mystery of the Tao!!"
***
A novice asked the master:
"I
wrote a program that sometimes works and sometimes crashes. I
followed the rules of programming and now I am completely stumped. What is
the reason for this?"
The master replied:
"You are confused because you do not
understand the Tao. Only a fool expects rational behavior from his
fellow humans. So why do you expect it from a machine that
was designed by humans? Computers simulate determinism, only the Tao
is perfect. The rules of programming are transient, only the Tao is eternal.
Therefore you must contemplate the Tao until you achieve
enlightenment."
"But how will I know when I have achieved enlightenment?" the novice asked.
"Your program will then run correctly," the master replied.
***
A novice asked the master:
"
I have noticed that one computer company is much larger than all
the rest. It towers over its competitors like a giant over
dwarfs. Any of its divisions could encompass an entire industry. Why
is this so?"
The master replied:
"Why do you ask such silly
questions? This company is so large because it cannot be
otherwise. If it only manufactured hardware, no one would buy
it. If it only developed systems, people would treat it
like a servant. But because it combines all these things, people think
they are gods!"
And without exerting effort, it effortlessly conquers.
***
A novice asked the master:
"
In the east there is a massive tree-like structure that people call
"Corporate Headquarters". It breaks its shape with vice presidents and
accountants. It issues a multitude of memos, each of which
says "Go There!" or "Go Here!" and no one knows what it means.
Every year new names appear on the branches, all to no avail.
How can such an unnatural entity exist?"
The master replied:
"
You perceived this immense structure and you are troubled that it has no
rational purpose. Are you not amused by its endless
spinning? Do you not enjoy the untroubled
ease of programming beneath its sheltering branches? Why are you
annoyed by its uselessness?"
***
One day, a novice
programmer was tasked with writing code for a simple financial package. The novice
worked frantically for many days, but when his master reviewed
the program, he discovered that it contained a screen editor, a set
of generalized graphics routines, and an interface equipped with artificial
intelligence, but not even a slight mention of anything related to
finance.
When the master asked about this, the novice became indignant.
"Don't be so impatient," he said. "I'll add the financial calculations into the final version."
***
A program
should be light and graceful, its subroutines strung together like strands
of pearls. The spirit and purpose of the program should be crystal clear. It should
be neither too large nor too small, with no
useless loops or unused variables, neither lacking in
structure nor overly rigid.
A program should follow
the "Law of Least Astonishment". What is this law? It is simply when
the program always responds to the user in a manner that surprises him
the least.
A program, regardless of its degree of complexity, must
act as a single whole. A program should be governed more by internal
logic than by external circumstances.
If a program fails to
satisfy these requirements, it will be in a state of dissonance and
confusion. The only way to correct this is to rewrite the program.
***
A programmer
from a very large computer company went to a software
conference, and when he returned, he reported to
his manager, saying:
"What kind of programmers are working in
other companies? They have bad manners and do not care about their appearance.
Their hair is long and uncombed, their clothes are wrinkled and old. They trashed
the hospitable hotel rooms and rudely made noise during
my presentation."
The manager said:
"I will never
send you to a conference again. These programmers live beyond
the material world. They consider life to be an absurd, ridiculous accident.
They come and go knowing no boundaries. Without a care, they live only for
their programs. Why should they adhere to social conventions?
They live with the Tao."
***
A frequently used door needs no oil on its hinges.
A fast-flowing stream does not turn into a swamp.
Neither sounds nor thoughts can travel through a vacuum.
If a program is not used, it rots.
These are great mysteries.
***
Can a farmer neglect the crops he has grown?
Can a teacher overlook even his humblest student?
Can a good father allow his only child to starve?
Can a good programmer refuse to maintain his code?
***
The Great Master Turing once dreamed that he was a machine. When he awoke he exclaimed:
"I don't know whether I am Turing who dreamed he was a machine, or a machine that dreamed it was Turing!"
***
Hardware met Software on the road to Chang-tse. Software said:
"You are Yin, and I am Yang. If we travel together we will become famous and earn vast amounts of money."
And so the pair walked on, thinking about how they would conquer the entire world.
And
then they met Firmware, who was dressed in tattered rags and
limped along the road leaning on a thorny staff. Firmware told them:
"
The Tao lies beyond Yin and Yang. It is silent and still like a pond. It does not seek
fame, therefore no one feels its presence. It does not seek fortune
because it is self-sufficient. It exists beyond
space and time."
Ashamed, Hardware and Software returned to their homes.
***
If
the presence of the Tao is great, then the operating system is good. If
the operating system is good, then the compiler is good. If the compiler
is good, then the applications are good. If the applications are good, then
the user is happy and harmony reigns in the world.
The Tao gave birth to
machine language. Machine language gave birth to the assembler. The assembler gave
birth to the compiler. Today there are ten thousand languages.
Each
language has its purpose, sometimes a humble one. Each language expresses the Yin and
Yang of software. Each language has its place in the Tao.
But do not program in Visual Basic, if you can avoid it.
***
In the beginning was the Tao. The Tao gave birth to Space and Time. Then, Space and Time became the Yin and Yang of programming.
Programmers
who do not embrace the Tao always lack time and space for their
programs. Programmers who embrace the Tao always have enough time and
space to achieve their goals.
Could it be any other way?
***
In the
east there was a shark that was larger than all other fish. It
turned into a bird whose wings filled the sky like clouds. When this
bird flew across the land, it brought a message from Corporate
Headquarters. It dropped this message into the lakes of programs, just as a seagull
leaves its mark upon the beach. Afterwards it would rise on the wind and,
leaving the blue skies behind, return home.
The novice
programmer looks at the bird in wonder because he does not understand what it is.
The average programmer dreads the coming of the bird because its message frightens
him. The master programmer continues working at his terminal
because he noticed neither the arrival nor the departure of the bird.
***
A programmer
for Prince Wang was coding a program. His fingers danced over the keyboard.
The program compiled without error messages and ran like
a gentle breeze.
"Excellent!" exclaimed the Prince. "Your technique is flawless!"
"
Technique?" said the programmer, turning away from his terminal. "What
I follow is the Tao — beyond all techniques. When I first started
programming, I saw the entire program before me as a single whole.
After three years, I no longer saw this whole. Instead, I
used subroutines. But now I see nothing. I exist entirely
in a formless void. My senses are inactive. My spirit is free and
works without a plan, obeying its own instincts. In short,
my program writes itself. True, difficult problems sometimes arise.
I see them coming, I stop, I observe.
Then I change a single line of code, and the difficulties vanish like a puff of smoke.
Then I compile the program. I sit still and let the joy of the work
fill my being. I close my eyes for a moment and log off the system."
Prince Wang said:
"If only all my programmers were so wise!"
***
Something
mysterious took shape, born in the absolute void. It remains
alone and motionless, sometimes pausing, sometimes in constant motion. It is
the source of all programs. I do not know its name, so I shall call it the Tao
of Programming.
If the presence of the Tao is great, then the operating
system is good. If the operating system is good, then the compiler
is good. If the compiler is good, then the applications are good. If the
applications are good, then the user is happy and harmony reigns in the world.
The Tao of Programming floats far away and returns on the morning wind.
***
A wizard
from the Ivory Tower brought his latest invention to the master
programmer for a trial. The wizard wheeled a black box into the master's office,
while the master waited in silence.
"This is an integrated, distributed,
general-purpose workstation," the Wizard began, "with an ergonomically
built-in proprietary operating system, sixth-generation programming languages,
and multiple state-of-the-art user
interfaces. My assistants spent several hundred
man-years creating it. Is it not amazing?"
The master raised his eyebrows slightly.
"It is indeed amazing," he said.
"
Corporate Headquarters has issued a directive," the Wizard continued, "
that everyone should use this workstation as a platform for
new programs. Do you agree with this?"
"Certainly," the master replied, "I will send it to the data center right away!"
And the Wizard returned to his tower very pleased.
A few days later, a novice walked into the master programmer's office and said:
"I cannot find the printout of my new program. Do you happen to know where it might be?"
"Yes," the master replied. "The printouts are sitting on the platform in the data center."
***
The master
programmer moves from program to program without fear. No
changes in management will harm him. He will not be fired even if
the project is cancelled. Why is this so? He is filled with the Tao.
***
Programmers of old were mysterious and profound. We cannot fathom their thoughts, and all we can do is describe them.
Cautious,
like a fox crossing a river. Alert, like a general on the battlefield.
Kind, like a hostess welcoming guests. Simple, like an uncarved
block of wood. Impenetrable, like black lakes in the darkest of caves.
Who will tell the secrets of their minds and hearts?
The answer exists only in the Tao.
***
The wise
programmer hears of the Tao and follows it. The average programmer hears of
the Tao and searches for it. The foolish programmer hears of the Tao and laughs at it.
If there were no cause for laughter, there would be no Tao.
High notes are hard to perceive. Moving forward is the path to retreat.
Great talent reveals itself at the end of life. Even a perfect program still has bugs.
***
A man once went to a computer trade show. Each day, as he entered, the man would say to the security guard at the door:
"I am a great thief, renowned for my thieving exploits. I warn you that this show shall not go unrobbed."
These
words greatly troubled the guard because inside there was millions of dollars worth of
computer equipment on display, and he kept a close eye
on this man. But the man simply wandered from pavilion to
pavilion, quietly humming something under his breath. When the man was leaving,
the guard pulled him aside and searched him from head to toe, but found
nothing.
On the next day of the show, the man returned and chided the guard, saying:
"I walked away with a massive haul yesterday, but today will be even better."
And the guard watched him even more closely, but to no avail.
On the final day of the show, the guard could no longer contain his curiosity.
"Sir Thief!" he said. "I am baffled and find no peace. Please enlighten me. What exactly are you stealing?"
The man laughed.
"I am stealing ideas," he said.
***
There was once a master programmer who wrote unstructured programs.
A novice
programmer, attempting to imitate him, also began to write unstructured
programs. When the novice asked the master to evaluate his progress, the master
criticized him for writing unstructured programs,
saying:
"What is appropriate for the master is not appropriate for the novice. You must understand the Tao before transcending structure."
***
There was once a programmer who belonged to the retinue of Prince Wu. The Prince asked the programmer:
"Which is easier to write: an accounting package or an operating system?"
"An operating system," the programmer replied.
The Prince let out an exclamation of disbelief.
"Surely an accounting package is much simpler compared to the complexity of an operating system," he said.
"
Not quite," the programmer said. "When an accounting package is written,
the programmer acts as a mediator between people who have different ideas
about how it should work, how the reports should be generated,
and how it complies with tax laws. By contrast,
an operating system is not bounded by external perceptions.
When writing an operating system, the programmer seeks the simplest path to
harmony between the machine and ideas. That is why writing an operating
system is easier."
Prince Wu nodded and laughed.
"That is all well and good, but which is easier to debug?"
The programmer did not reply.
***
There was once a programmer who worked with microprocessors.
"
Look how great I have it here!" he said to a mainframe programmer
who had come to visit him. "I have my own operating system and
a storage device for my files. I do not share my resources with anyone.
The software is self-contained and easy to use. Why don't
you quit your current job and join me here?"
Then the mainframe programmer began to describe his system to his friend, saying:
"
The mainframe sits in the data center like an ancient sage
deep in meditation. Its disk drives spread out from end to
end like a vast electronic ocean. The software is as
multifaceted as a diamond and entwined like a primordial jungle.
The programs, each one unique, move through the system like a fast-flowing
river. That is why I am happy where I am."
The microcomputer programmer, hearing this, fell silent for a long time. But the two programmers remained friends until the end of their days.
***
It is said by the master programmer:
"A well-written program is the property of heaven; a poorly written program is the property of the underworld."
***
It is said by the master programmer:
"After three days without programming, life becomes meaningless."
***
It is said by the master programmer:
"Let there be many programmers and few managers — then everyone will be productive."
***
It is said by the master programmer:
"Even if a program consists of three lines, it will someday be expanded."
***
It is said by the master programmer:
"It is high time for you to leave."
***
It is said by the master programmer:
"When a program is being tested, it is already too late to make changes."
***
It is said by the master programmer:
"When you have learned to extract the buggy code from the failing segment, it is high time for you to leave."
***
It is said by the master programmer:
Without wind, the grass is motionless. Without programs, computers are useless.
***
It is said by the master programmer:
"You can demonstrate a program to a corporate employee, but you cannot make him computer literate."
***
When managers hold endless meetings, programmers write games.
When
accountants talk about quarterly earnings, the developers' budget will be
cut. When senior researchers twiddle their thumbs — the clouds gather.
Believe me, this is not the Tao of Programming.
When
managers make commitments, game programs are forgotten. When
accountants lay out long-term plans, harmony and order are almost
restored.
When senior researchers are busy with current problems, the problems will soon be resolved.
Believe me, this is the Tao of Programming.
***
Why are programmers not productive?
Because their time is wasted in meetings.
Why are programmers rebellious?
Because management interferes too much.
Why do programmers leave one by one?
Because they burn out.
Working for bad management, they no longer value their work.
[C] Geoffrey James, translator unknown
See also: